package com.memo4android.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;

public class ItemTodoList extends Item implements Comparable<ItemTodoList> {

	public static final String FAIBLE = "faible";
	public static final String MOYENNE = "moyenne";
	public static final String FORTE = "forte";
	
	private Date endDate;
	private String priorite;
	private ArrayList<Todo> todos;
	
	public ItemTodoList(String titre, Date echeance) {
		super(titre);
		if(echeance == null)
			endDate = new Date();
		else 
			endDate = echeance;
		todos = new ArrayList<Todo>();
	}
	
	public ItemTodoList(){
		super();
		endDate = new Date();
		todos = new ArrayList<Todo>();
	}

	public ArrayList<Todo> getTodos() {
		return todos;
	}
	
	public Date getEcheance() {
		return endDate;
	}

	public void setEcheance(Date echeance) {
		this.endDate = echeance;
	}
	
	public void setPriorite(String priorite){
		this.priorite = priorite;
	}
	
	public String getPriorite(){
		return priorite;
	}
	

	public int compareTo(ItemTodoList another) {
		if(endDate != null && another.getEcheance() != null)
			return this.endDate.compareTo(another.getEcheance());
		else
			return -1;
	}
	
	public Todo getTodo(String titre){
		for(Todo t : todos){
			if(t.getTitre().equals(titre)){
				return t;
			}
		}
		return null;
	}
	
	public Todo getTodo(int i){
		int j = 0;
		Iterator<Todo> iter = todos.iterator();
		while(j != i && iter.hasNext()){
			iter.next();
			j++;
		}
		return iter.next();
	}
	
	public boolean addTodo(Todo todo){
		todo.setParent(this);
		return todos.add(todo);
	}
	public boolean deleteTodo(Todo todo){
		return todos.remove(todo);
	}
	
	public int getNumberOfTodos(){
		return todos.size();
	}
}
